#!/bin/bash

# 当任何命令执行失败时，立即停止脚本
set -e

# --- 配置信息 ---
# 从您的阿里云容器镜像服务页面获取以下信息
REGISTRY_URL="registry.cn-hangzhou.aliyuncs.com"
NAMESPACE="kinggushenjie"
IMAGE_NAME="tradeanalysis"
USERNAME="gushenjie123"
PASSWORD="gsj53452827" # 警告：在脚本中直接存储密码不建议用于生产环境。

# 基于当前日期和时间生成一个版本标签 (例如: 20250910-1830)
VERSION_TAG=$(date +%Y%m%d-%H%M)

# 完整的远程镜像路径
REMOTE_IMAGE_LATEST="${REGISTRY_URL}/${NAMESPACE}/${IMAGE_NAME}:latest"
REMOTE_IMAGE_VERSIONED="${REGISTRY_URL}/${NAMESPACE}/${IMAGE_NAME}:${VERSION_TAG}"

# --- 脚本执行逻辑 ---

echo "=================================================="
echo "开始执行Docker镜像部署脚本"
echo "=================================================="
echo "镜像仓库地址:  ${REGISTRY_URL}"
echo "镜像名称:      ${IMAGE_NAME}"
echo "版本标签:      ${VERSION_TAG}"
echo "用户名:        ${USERNAME}"
echo "=================================================="

# 1. 为目标服务器 (linux/amd64) 构建跨平台镜像
echo "\n--> 第1步: 构建跨平台镜像 (目标: linux/amd64)..."
docker buildx build --no-cache --platform linux/amd64 -t ${IMAGE_NAME}:latest . --load
echo "构建完成."

# 2. 登录到阿里云容器镜像服务
echo "\n--> 第2步: 登录到镜像仓库..."
echo "${PASSWORD}" | docker login --username=${USERNAME} --password-stdin ${REGISTRY_URL}
echo "登录成功."

# 3. 为远程仓库标记镜像
echo "\n--> 第3步: 标记镜像..."
docker tag ${IMAGE_NAME}:latest ${REMOTE_IMAGE_LATEST}
docker tag ${IMAGE_NAME}:latest ${REMOTE_IMAGE_VERSIONED}
echo "已标记为: ${REMOTE_IMAGE_LATEST}"
echo "已标记为: ${REMOTE_IMAGE_VERSIONED}"

# 4. 推送镜像到远程仓库
echo "\n--> 第4步: 推送镜像到仓库..."
docker push ${REMOTE_IMAGE_LATEST}
docker push ${REMOTE_IMAGE_VERSIONED}

echo "\n=================================================="
echo "部署成功!"
echo "您现在可以在您的服务器上拉取此镜像:"
echo "docker pull ${REMOTE_IMAGE_VERSIONED}"
echo "=================================================="
